package org.mokusakura.persistence.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.mokusakura.domain.CartItem;
import org.springframework.lang.Nullable;

import java.util.List;

@Mapper
public interface CartMapper {
    /**
     * <p>根据用户id选择CartItem的List，CartItem中，Item为null，inStock为null</p>
     *
     * @param userId-user id
     * @return CartItem的List
     */
    List<CartItem> getCartItemListByUserId(Integer userId);

    /**
     * <p>插入一个CartItem </p>
     *
     * @param cartItem - 要插入的CartItem
     * @return 1或0
     */
    Integer insertCartItem(CartItem cartItem);

    /**
     * 删除购物车中的物品
     *
     * @param userId - 用户id
     * @param itemId - 物品id
     * @return - 1或0
     */
    Integer deleteCartItem(Integer userId, String itemId);

    /**
     * <p>根据两个主键更新数量 </p>
     *
     * @param userId      要更新的用户的id
     * @param itemId      要更新的item id,可null，null则删除该用户的所有购物车信息
     * @param newQuantity 要更新的新数量
     * @return 1或0
     */
    Integer updateQuantity(Integer userId, @Nullable String itemId, Integer newQuantity);


}
